package com.example.Bridge;

/**
 * 桥接模式
 *  https://www.runoob.com/w3cnote/bridge-pattern2.html
 *  优点:
 *     1、分离抽象接口及其实现部分。提高了比继承更好的解决方案。
 *     2、桥接模式提高了系统的可扩充性，在两个变化维度中任意扩展一个维度，都不需要修改原有系统。
 *     3、实现细节对客户透明，可以对用户隐藏实现细节。
 *  两个维度：
 *      形状
 *      颜色
 */
public class app {
    public static void main(String[] args) {
        Color whiteColor = new WhiteColor();

        CircleShap circle = new CircleShap();
        circle.setColor(whiteColor);
        circle.draw(); // White Circle

        RectangleShap rectangle = new RectangleShap();
        rectangle.setColor(whiteColor);
        rectangle.draw(); // White Rectangle
    }
}
